import Vue from 'vue'

import Cookies from 'js-cookie'

import 'normalize.css/normalize.css' // a modern alternative to CSS resets

import Element from 'element-ui'
import './styles/element-variables.scss'

import "vant/lib/index.css"; // vant组件样式

import {
  ActionSheet,
  Area,
  Cascader,Calendar,
  DatetimePicker,
  Field,
  Form,
  Picker,
  Popup,
  Stepper,
  Switch,
  Uploader,
  List,
  Button,
  Cell, CellGroup,
  Pagination,
  Checkbox,
  CheckboxGroup,
  RadioGroup, Radio,
  Tabbar, TabbarItem,
  Grid,GridItem
} from "vant";

// 如果使用中文语言包请默认支持，无需额外引入，请删除该依赖
// import enLang from 'element-ui/lib/locale/lang/en'

import '@/styles/index.scss' // global css
import '@/assets/thirdIcon/iconfont.css' // third iconfont css

import App from './App'
import store from './store'
import router from './router'

import './icons' // icon
import './permission' // permission control
import './utils/error-log' // error log

import * as filters from './filters' // global filters
/**
 * If you don't want to use mock-server
 * you want to use MockJs for mock api
 * you can execute: mockXHR()
 *
 * Currently MockJs will be used in the production environment,
 * please remove it before going online ! ! !
 */
if (process.env.NODE_ENV === 'production') {
  const { mockXHR } = require('../mock')
  mockXHR()
}


import directive from './directive' // directive
import plugins from './plugins' // plugins
import { download } from '@/utils/request'

import './icons' // icon
import './permission' // permission control
import { getDicts } from "@/api/dict/data";
import { getConfigKey } from "@/api/config";
import { parseTime, formatDateTime,resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree,isMobile } from "@/utils/common";
// 分页组件
import ElementPagination from "@/components/Pagination";
// 自定义表格工具组件
import RightToolbar from "@/components/RightToolbar"
// 富文本组件
// import Editor from "@/components/Editor"
// 文件上传组件
import FileUpload from "@/components/FileUpload"
// 图片上传组件
import ImageUpload from "@/components/ImageUpload"
// 图片预览组件
// import ImagePreview from "@/components/ImagePreview"
// 字典标签组件
import DictTag from '@/components/DictTag'
// 头部标签组件
// import VueMeta from 'vue-meta'
// 字典数据组件
import DictData from '@/components/DictData'

import VDistpicker from 'v-distpicker'
export default{
  component:{ VDistpicker }
}

function IsPC() {
  var userAgentInfo = navigator.userAgent;
  var Agents = ['Android', 'iPhone', 'SymbianOS', 'Windows Phone', 'iPad', 'iPod'];
  var flag = true;
  for (var v = 0; v < Agents.length; v++) {
    if (userAgentInfo.indexOf(Agents[v]) > 0) {
      flag = false;
      break;
    }
  }
  return flag;
}

// 全局方法挂载
Vue.prototype.$isMobile = isMobile();
Vue.prototype.getDicts = getDicts;
Vue.prototype.getConfigKey = getConfigKey;
Vue.prototype.parseTime = parseTime;
Vue.prototype.formatDateTime = formatDateTime;
Vue.prototype.resetForm = resetForm;
Vue.prototype.addDateRange = addDateRange;
Vue.prototype.selectDictLabel = selectDictLabel;
Vue.prototype.selectDictLabels = selectDictLabels;
Vue.prototype.download = download;
Vue.prototype.handleTree = handleTree;

// 全局组件挂载
Vue.component('DictTag', DictTag);
Vue.component('Pagination', ElementPagination);
Vue.component('RightToolbar', RightToolbar);
// Vue.component('Editor', Editor);
Vue.component('FileUpload', FileUpload);
Vue.component('ImageUpload', ImageUpload);
// Vue.component('ImagePreview', ImagePreview)

Vue.use(directive);
Vue.use(plugins);
// Vue.use(VueMeta)
DictData.install();

Vue.use(Popup);
Vue.use(Area);
Vue.use(DatetimePicker);
Vue.use(ActionSheet);
Vue.use(Picker);
Vue.use(Switch);
Vue.use(Stepper);
Vue.use(Field);
Vue.use(Uploader);
Vue.use(Cascader);
Vue.use(Form);
Vue.use(List);
Vue.use(Button);
Vue.use(Cell);
Vue.use(CellGroup);
Vue.use(Pagination);
Vue.use(Checkbox);
Vue.use(CheckboxGroup);
Vue.use(Radio);
Vue.use(RadioGroup);
Vue.use(Calendar);
Vue.use(Tabbar);
Vue.use(TabbarItem);
Vue.use(Grid);
Vue.use(GridItem);



Vue.use(Element, {
  size: Cookies.get('size') || 'medium', // set element-ui default size

  // 如果使用中文，无需设置，请删除
  // locale: enLang
})

// register global utility filters
Object.keys(filters).forEach(key => {
  Vue.filter(key, filters[key])
})

Vue.config.productionTip = false


new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App)
})
